package com.uade.magicCompany.controler;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.uade.magicCompany.controler.utitilities.ActionConstants;
import com.uade.magicCompany.model.Usuario;
import com.uade.magicCompany.services.GestionGrupoUsuarios;
import com.uade.magicCompany.services.GestionGrupoUsuariosImpl;

public class GrupoAction extends ActionSupport implements SessionAware {
	
	private static final long serialVersionUID = 1L;
	private Map<String, Object> userSession ;
	
	private List<Usuario> miembros;
	private String nombreGrupo;
	
	@Override
	public void setSession(Map<String, Object> session) {
		userSession = session;
	}
	
	public String execute() throws Exception {
		GestionGrupoUsuarios gestionGrupo = new GestionGrupoUsuariosImpl();
		System.out.println("Entrando a Grupo");
		if (!gestionGrupo.tieneGrupoAsociado((String) ActionContext.getContext().getSession().get(ActionConstants.USER_LOGGED))) {
			System.out.println("No tiene grupo.");
			return "crear";
		}
		String user = (String) ActionContext.getContext().getSession().get(ActionConstants.USER_LOGGED);
		if(null!=user){
			setMiembros(gestionGrupo.obtenerUsuariosDelGrupo(Long.valueOf(user)));
			if (miembros.size() > 0) {
				setNombreGrupo(miembros.get(0).getGrupo().getNombre());
			}
			System.out.println("Mostrando grupo");
			return SUCCESS;		
		}
		return "login";

	}


	public List<Usuario> getMiembros() {
		return miembros;
	}


	public void setMiembros(List<Usuario> miembros) {
		this.miembros = miembros;
	}

	public String getNombreGrupo() {
		return nombreGrupo;
	}

	public void setNombreGrupo(String nombreGrupo) {
		this.nombreGrupo = nombreGrupo;
	}

}
